<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::linemod::Detector Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d5/d08/namespacecv_1_1linemod.html">linemod</a></li><li class="navelem"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html">Detector</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pro-types">Protected Types</a> |
<a href="#pro-methods">Protected Member Functions</a> |
<a href="#pro-attribs">Protected Attributes</a> |
<a href="../../dc/ddf/classcv_1_1linemod_1_1Detector-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::linemod::Detector Class Reference<div class="ingroups"><a class="el" href="../../d2/d3a/group__rgbd.html">RGB-Depth Processing</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>Object detector using the LINE template matching algorithm with any set of modalities.  
 <a href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#details">More...</a></p>
<p><code>#include &lt;opencv2/rgbd/linemod.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a5f60b6ace07d2435f92b6a2353ff5b08"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a5f60b6ace07d2435f92b6a2353ff5b08">Detector</a> ()</td></tr>
<tr class="memdesc:a5f60b6ace07d2435f92b6a2353ff5b08"><td class="mdescLeft"> </td><td class="mdescRight">Empty constructor, initialize with <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a6388744994ba8eb20b1d2f105e36e2f1">read()</a>.  <a href="#a5f60b6ace07d2435f92b6a2353ff5b08">More...</a><br/></td></tr>
<tr class="separator:a5f60b6ace07d2435f92b6a2353ff5b08"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af509761698a542228b047865cc88c996"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#af509761698a542228b047865cc88c996">Detector</a> (const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d5/d1c/classcv_1_1linemod_1_1Modality.html">Modality</a> &gt; &gt; &amp;<a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a4e4080b2f211294fc79c55aa11654c2c">modalities</a>, const std::vector&lt; int &gt; &amp;T_pyramid)</td></tr>
<tr class="memdesc:af509761698a542228b047865cc88c996"><td class="mdescLeft"> </td><td class="mdescRight">Constructor.  <a href="#af509761698a542228b047865cc88c996">More...</a><br/></td></tr>
<tr class="separator:af509761698a542228b047865cc88c996"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a76f27a64efe1de3d85cac6f73401c490"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a76f27a64efe1de3d85cac6f73401c490">addSyntheticTemplate</a> (const std::vector&lt; <a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a> &gt; &amp;templates, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;class_id)</td></tr>
<tr class="memdesc:a76f27a64efe1de3d85cac6f73401c490"><td class="mdescLeft"> </td><td class="mdescRight">Add a new object template computed by external means.  <a href="#a76f27a64efe1de3d85cac6f73401c490">More...</a><br/></td></tr>
<tr class="separator:a76f27a64efe1de3d85cac6f73401c490"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab6baf396cefd388bcea8eb088487aeb0"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ab6baf396cefd388bcea8eb088487aeb0">addTemplate</a> (const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &amp;sources, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;class_id, const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp;object_mask, <a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> *bounding_box=NULL)</td></tr>
<tr class="memdesc:ab6baf396cefd388bcea8eb088487aeb0"><td class="mdescLeft"> </td><td class="mdescRight">Add new object template.  <a href="#ab6baf396cefd388bcea8eb088487aeb0">More...</a><br/></td></tr>
<tr class="separator:ab6baf396cefd388bcea8eb088487aeb0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a013280cc0d3d51df042ab12c5ab868d1"><td align="right" class="memItemLeft" valign="top">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a013280cc0d3d51df042ab12c5ab868d1">classIds</a> () const</td></tr>
<tr class="separator:a013280cc0d3d51df042ab12c5ab868d1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac2fef0358b82af16376075c8e94213fd"><td align="right" class="memItemLeft" valign="top">const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d5/d1c/classcv_1_1linemod_1_1Modality.html">Modality</a> &gt; &gt; &amp; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ac2fef0358b82af16376075c8e94213fd">getModalities</a> () const</td></tr>
<tr class="memdesc:ac2fef0358b82af16376075c8e94213fd"><td class="mdescLeft"> </td><td class="mdescRight">Get the modalities used by this detector.  <a href="#ac2fef0358b82af16376075c8e94213fd">More...</a><br/></td></tr>
<tr class="separator:ac2fef0358b82af16376075c8e94213fd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:acd953aac2444671aa34765d32bd1051d"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#acd953aac2444671aa34765d32bd1051d">getT</a> (int pyramid_level) const</td></tr>
<tr class="memdesc:acd953aac2444671aa34765d32bd1051d"><td class="mdescLeft"> </td><td class="mdescRight">Get sampling step T at pyramid_level.  <a href="#acd953aac2444671aa34765d32bd1051d">More...</a><br/></td></tr>
<tr class="separator:acd953aac2444671aa34765d32bd1051d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a09f98d8d868e18c8f7cd881d4a586d27"><td align="right" class="memItemLeft" valign="top">const std::vector&lt; <a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a> &gt; &amp; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a09f98d8d868e18c8f7cd881d4a586d27">getTemplates</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;class_id, int template_id) const</td></tr>
<tr class="memdesc:a09f98d8d868e18c8f7cd881d4a586d27"><td class="mdescLeft"> </td><td class="mdescRight">Get the template pyramid identified by template_id.  <a href="#a09f98d8d868e18c8f7cd881d4a586d27">More...</a><br/></td></tr>
<tr class="separator:a09f98d8d868e18c8f7cd881d4a586d27"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a57ec7d6920aa3d31f91ac6972cb12ee5"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a57ec7d6920aa3d31f91ac6972cb12ee5">match</a> (const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &amp;sources, float <a class="el" href="../../d7/d1b/group__imgproc__misc.html#gae8a4a146d1ca78c626a53577199e9c57">threshold</a>, std::vector&lt; <a class="el" href="../../d9/da0/structcv_1_1linemod_1_1Match.html">Match</a> &gt; &amp;matches, const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &gt; &amp;class_ids=std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &gt;(), <a class="el" href="../../dc/d84/group__core__basic.html#ga889a09549b98223016170d9b613715de">OutputArrayOfArrays</a> quantized_images=<a class="el" href="../../dc/d84/group__core__basic.html#gad9287b23bba2fed753b36ef561ae7346">noArray</a>(), const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &amp;masks=std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt;()) const</td></tr>
<tr class="memdesc:a57ec7d6920aa3d31f91ac6972cb12ee5"><td class="mdescLeft"> </td><td class="mdescRight">Detect objects by template matching.  <a href="#a57ec7d6920aa3d31f91ac6972cb12ee5">More...</a><br/></td></tr>
<tr class="separator:a57ec7d6920aa3d31f91ac6972cb12ee5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:acd7e2e72ced11b7338e127baf5654968"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#acd7e2e72ced11b7338e127baf5654968">numClasses</a> () const</td></tr>
<tr class="separator:acd7e2e72ced11b7338e127baf5654968"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a0838546464e172e3e57cfc5cd1cac98f"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a0838546464e172e3e57cfc5cd1cac98f">numTemplates</a> () const</td></tr>
<tr class="separator:a0838546464e172e3e57cfc5cd1cac98f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad4ee440463a0c2214f830ea12fa4f4bd"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ad4ee440463a0c2214f830ea12fa4f4bd">numTemplates</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;class_id) const</td></tr>
<tr class="separator:ad4ee440463a0c2214f830ea12fa4f4bd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3a9c96fdcc0c85c5a6587576809fb135"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a3a9c96fdcc0c85c5a6587576809fb135">pyramidLevels</a> () const</td></tr>
<tr class="memdesc:a3a9c96fdcc0c85c5a6587576809fb135"><td class="mdescLeft"> </td><td class="mdescRight">Get number of pyramid levels used by this detector.  <a href="#a3a9c96fdcc0c85c5a6587576809fb135">More...</a><br/></td></tr>
<tr class="separator:a3a9c96fdcc0c85c5a6587576809fb135"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6388744994ba8eb20b1d2f105e36e2f1"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a6388744994ba8eb20b1d2f105e36e2f1">read</a> (const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp;fn)</td></tr>
<tr class="separator:a6388744994ba8eb20b1d2f105e36e2f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4fc57692a360b0681e5f4515401c4713"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a4fc57692a360b0681e5f4515401c4713">readClass</a> (const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp;fn, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;class_id_override="")</td></tr>
<tr class="separator:a4fc57692a360b0681e5f4515401c4713"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3783f38548a7650e932240a86c9d3980"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a3783f38548a7650e932240a86c9d3980">readClasses</a> (const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &gt; &amp;class_ids, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;format="templates_%s.yml.gz")</td></tr>
<tr class="separator:a3783f38548a7650e932240a86c9d3980"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a45ad63d73e6ff0967b1f479912801a95"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a45ad63d73e6ff0967b1f479912801a95">write</a> (<a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp;fs) const</td></tr>
<tr class="separator:a45ad63d73e6ff0967b1f479912801a95"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a150685aaacdd5e6b99361fdd72baac3d"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a150685aaacdd5e6b99361fdd72baac3d">writeClass</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;class_id, <a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp;fs) const</td></tr>
<tr class="separator:a150685aaacdd5e6b99361fdd72baac3d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5113da474bbd6558cff732dadc576c87"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a5113da474bbd6558cff732dadc576c87">writeClasses</a> (const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;format="templates_%s.yml.gz") const</td></tr>
<tr class="separator:a5113da474bbd6558cff732dadc576c87"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected Types</h2></td></tr>
<tr class="memitem:adb0b556a1308ff2bb81ad81e74e06a65"><td align="right" class="memItemLeft" valign="top">typedef std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#adb0b556a1308ff2bb81ad81e74e06a65">LinearMemories</a></td></tr>
<tr class="separator:adb0b556a1308ff2bb81ad81e74e06a65"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4063f79d0d03ee9652ca92abfe0cb950"><td align="right" class="memItemLeft" valign="top">typedef std::vector&lt; std::vector&lt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#adb0b556a1308ff2bb81ad81e74e06a65">LinearMemories</a> &gt; &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a4063f79d0d03ee9652ca92abfe0cb950">LinearMemoryPyramid</a></td></tr>
<tr class="separator:a4063f79d0d03ee9652ca92abfe0cb950"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae2b55fd210e65aa7947d5523f6aee722"><td align="right" class="memItemLeft" valign="top">typedef std::vector&lt; <a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ae2b55fd210e65aa7947d5523f6aee722">TemplatePyramid</a></td></tr>
<tr class="separator:ae2b55fd210e65aa7947d5523f6aee722"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a76690bb7364a685ebcc45a3813285a4e"><td align="right" class="memItemLeft" valign="top">typedef std::map&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>, std::vector&lt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ae2b55fd210e65aa7947d5523f6aee722">TemplatePyramid</a> &gt; &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a76690bb7364a685ebcc45a3813285a4e">TemplatesMap</a></td></tr>
<tr class="separator:a76690bb7364a685ebcc45a3813285a4e"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a189b904ea0b9e500c5c64a52da9ec73c"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a189b904ea0b9e500c5c64a52da9ec73c">matchClass</a> (const <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a4063f79d0d03ee9652ca92abfe0cb950">LinearMemoryPyramid</a> &amp;lm_pyramid, const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> &gt; &amp;sizes, float <a class="el" href="../../d7/d1b/group__imgproc__misc.html#gae8a4a146d1ca78c626a53577199e9c57">threshold</a>, std::vector&lt; <a class="el" href="../../d9/da0/structcv_1_1linemod_1_1Match.html">Match</a> &gt; &amp;matches, const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp;class_id, const std::vector&lt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ae2b55fd210e65aa7947d5523f6aee722">TemplatePyramid</a> &gt; &amp;template_pyramids) const</td></tr>
<tr class="separator:a189b904ea0b9e500c5c64a52da9ec73c"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:af9e4e10678d4d451ae66cae2f1b644bb"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a76690bb7364a685ebcc45a3813285a4e">TemplatesMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#af9e4e10678d4d451ae66cae2f1b644bb">class_templates</a></td></tr>
<tr class="separator:af9e4e10678d4d451ae66cae2f1b644bb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4e4080b2f211294fc79c55aa11654c2c"><td align="right" class="memItemLeft" valign="top">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d5/d1c/classcv_1_1linemod_1_1Modality.html">Modality</a> &gt; &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a4e4080b2f211294fc79c55aa11654c2c">modalities</a></td></tr>
<tr class="separator:a4e4080b2f211294fc79c55aa11654c2c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab96bceee186a7c3caa7ac8eaacfba518"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ab96bceee186a7c3caa7ac8eaacfba518">pyramid_levels</a></td></tr>
<tr class="separator:ab96bceee186a7c3caa7ac8eaacfba518"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a45bc91a66be77577402b17b8b9c490b0"><td align="right" class="memItemLeft" valign="top">std::vector&lt; int &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a45bc91a66be77577402b17b8b9c490b0">T_at_level</a></td></tr>
<tr class="separator:a45bc91a66be77577402b17b8b9c490b0"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Object detector using the LINE template matching algorithm with any set of modalities. </p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="adb0b556a1308ff2bb81ad81e74e06a65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb0b556a1308ff2bb81ad81e74e06a65">◆ </a></span>LinearMemories</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a>&gt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#adb0b556a1308ff2bb81ad81e74e06a65">cv::linemod::Detector::LinearMemories</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4063f79d0d03ee9652ca92abfe0cb950"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4063f79d0d03ee9652ca92abfe0cb950">◆ </a></span>LinearMemoryPyramid</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt; std::vector&lt;<a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#adb0b556a1308ff2bb81ad81e74e06a65">LinearMemories</a>&gt; &gt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a4063f79d0d03ee9652ca92abfe0cb950">cv::linemod::Detector::LinearMemoryPyramid</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae2b55fd210e65aa7947d5523f6aee722"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2b55fd210e65aa7947d5523f6aee722">◆ </a></span>TemplatePyramid</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::vector&lt;<a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a>&gt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ae2b55fd210e65aa7947d5523f6aee722">cv::linemod::Detector::TemplatePyramid</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a76690bb7364a685ebcc45a3813285a4e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76690bb7364a685ebcc45a3813285a4e">◆ </a></span>TemplatesMap</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef std::map&lt;<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>, std::vector&lt;<a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ae2b55fd210e65aa7947d5523f6aee722">TemplatePyramid</a>&gt; &gt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a76690bb7364a685ebcc45a3813285a4e">cv::linemod::Detector::TemplatesMap</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a5f60b6ace07d2435f92b6a2353ff5b08"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f60b6ace07d2435f92b6a2353ff5b08">◆ </a></span>Detector() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::linemod::Detector::Detector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;linemod_Detector object&gt;</td><td>=</td><td>cv.linemod_Detector(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;linemod_Detector object&gt;</td><td>=</td><td>cv.linemod_Detector(</td><td class="paramname">modalities, T_pyramid</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Empty constructor, initialize with <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a6388744994ba8eb20b1d2f105e36e2f1">read()</a>. </p>
</div>
</div>
<a id="af509761698a542228b047865cc88c996"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af509761698a542228b047865cc88c996">◆ </a></span>Detector() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::linemod::Detector::Detector </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d5/d1c/classcv_1_1linemod_1_1Modality.html">Modality</a> &gt; &gt; &amp; </td>
          <td class="paramname"><em>modalities</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp; </td>
          <td class="paramname"><em>T_pyramid</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;linemod_Detector object&gt;</td><td>=</td><td>cv.linemod_Detector(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;linemod_Detector object&gt;</td><td>=</td><td>cv.linemod_Detector(</td><td class="paramname">modalities, T_pyramid</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">modalities</td><td>Modalities to use (color gradients, depth normals, ...). </td></tr>
    <tr><td class="paramname">T_pyramid</td><td>Value of the sampling step T at each pyramid level. The number of pyramid levels is <a class="el" href="../../df/d5b/namespacecv_1_1gapi_1_1streaming.html#a0a915e69f4cc8284293e40fc9ffbf157" title="Gets dimensions from Mat. ">T_pyramid.size()</a>. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a76f27a64efe1de3d85cac6f73401c490"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76f27a64efe1de3d85cac6f73401c490">◆ </a></span>addSyntheticTemplate()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::addSyntheticTemplate </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a> &gt; &amp; </td>
          <td class="paramname"><em>templates</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>class_id</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.addSyntheticTemplate(</td><td class="paramname">templates, class_id</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Add a new object template computed by external means. </p>
</div>
</div>
<a id="ab6baf396cefd388bcea8eb088487aeb0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6baf396cefd388bcea8eb088487aeb0">◆ </a></span>addTemplate()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::addTemplate </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &amp; </td>
          <td class="paramname"><em>sources</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>class_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &amp; </td>
          <td class="paramname"><em>object_mask</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> * </td>
          <td class="paramname"><em>bounding_box</em> = <code>NULL</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval, bounding_box</td><td>=</td><td>cv.linemod_Detector.addTemplate(</td><td class="paramname">sources, class_id, object_mask</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Add new object template. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">sources</td><td>Source images, one for each modality. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">class_id</td><td>Object class ID. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">object_mask</td><td>Mask separating object from background. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">bounding_box</td><td>Optionally return bounding box of the extracted features.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a> ID, or -1 if failed to extract a valid template. </dd></dl>
</div>
</div>
<a id="a013280cc0d3d51df042ab12c5ab868d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a013280cc0d3d51df042ab12c5ab868d1">◆ </a></span>classIds()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a>&gt; cv::linemod::Detector::classIds </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.classIds(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="ac2fef0358b82af16376075c8e94213fd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac2fef0358b82af16376075c8e94213fd">◆ </a></span>getModalities()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d5/d1c/classcv_1_1linemod_1_1Modality.html">Modality</a>&gt; &gt;&amp; cv::linemod::Detector::getModalities </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.getModalities(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Get the modalities used by this detector. </p>
<p>You are not permitted to add/remove modalities, but you may dynamic_cast them to tweak parameters. </p>
</div>
</div>
<a id="acd953aac2444671aa34765d32bd1051d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd953aac2444671aa34765d32bd1051d">◆ </a></span>getT()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::getT </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>pyramid_level</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.getT(</td><td class="paramname">pyramid_level</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Get sampling step T at pyramid_level. </p>
</div>
</div>
<a id="a09f98d8d868e18c8f7cd881d4a586d27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09f98d8d868e18c8f7cd881d4a586d27">◆ </a></span>getTemplates()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt;<a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a>&gt;&amp; cv::linemod::Detector::getTemplates </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>class_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>template_id</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.getTemplates(</td><td class="paramname">class_id, template_id</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Get the template pyramid identified by template_id. </p>
<p>For example, with 2 modalities (Gradient, Normal) and two pyramid levels (L0, <a class="el" href="../../d4/d7f/structcv_1_1L1.html">L1</a>), the order is (GradientL0, NormalL0, GradientL1, NormalL1). </p>
</div>
</div>
<a id="a57ec7d6920aa3d31f91ac6972cb12ee5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57ec7d6920aa3d31f91ac6972cb12ee5">◆ </a></span>match()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::linemod::Detector::match </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &amp; </td>
          <td class="paramname"><em>sources</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>threshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="../../d9/da0/structcv_1_1linemod_1_1Match.html">Match</a> &gt; &amp; </td>
          <td class="paramname"><em>matches</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &gt; &amp; </td>
          <td class="paramname"><em>class_ids</em> = <code>std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &gt;()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga889a09549b98223016170d9b613715de">OutputArrayOfArrays</a> </td>
          <td class="paramname"><em>quantized_images</em> = <code><a class="el" href="../../dc/d84/group__core__basic.html#gad9287b23bba2fed753b36ef561ae7346">noArray</a>()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt; &amp; </td>
          <td class="paramname"><em>masks</em> = <code>std::vector&lt; <a class="el" href="../../d3/d63/classcv_1_1Mat.html">Mat</a> &gt;()</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>matches, quantized_images</td><td>=</td><td>cv.linemod_Detector.match(</td><td class="paramname">sources, threshold[, class_ids[, quantized_images[, masks]]]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Detect objects by template matching. </p>
<p>Matches globally at the lowest pyramid level, then refines locally stepping up the pyramid.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">sources</td><td>Source images, one for each modality. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">threshold</td><td>Similarity threshold, a percentage between 0 and 100. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">matches</td><td><a class="el" href="../../d2/dc7/structcv_1_1linemod_1_1Template.html">Template</a> matches, sorted by similarity score. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">class_ids</td><td>If non-empty, only search for the desired object classes. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">quantized_images</td><td>Optionally return vector&lt;Mat&gt; of quantized images. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">masks</td><td>The masks for consideration during matching. The masks should be CV_8UC1 where 255 represents a valid pixel. If non-empty, the vector must be the same size as sources. Each element must be empty or the same size as its corresponding source. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a189b904ea0b9e500c5c64a52da9ec73c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a189b904ea0b9e500c5c64a52da9ec73c">◆ </a></span>matchClass()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::linemod::Detector::matchClass </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a4063f79d0d03ee9652ca92abfe0cb950">LinearMemoryPyramid</a> &amp; </td>
          <td class="paramname"><em>lm_pyramid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga346f563897249351a34549137c8532a0">Size</a> &gt; &amp; </td>
          <td class="paramname"><em>sizes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float </td>
          <td class="paramname"><em>threshold</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="../../d9/da0/structcv_1_1linemod_1_1Match.html">Match</a> &gt; &amp; </td>
          <td class="paramname"><em>matches</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>class_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#ae2b55fd210e65aa7947d5523f6aee722">TemplatePyramid</a> &gt; &amp; </td>
          <td class="paramname"><em>template_pyramids</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="acd7e2e72ced11b7338e127baf5654968"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd7e2e72ced11b7338e127baf5654968">◆ </a></span>numClasses()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::numClasses </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.numClasses(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a0838546464e172e3e57cfc5cd1cac98f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0838546464e172e3e57cfc5cd1cac98f">◆ </a></span>numTemplates() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::numTemplates </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.numTemplates(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.numTemplates(</td><td class="paramname">class_id</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="ad4ee440463a0c2214f830ea12fa4f4bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad4ee440463a0c2214f830ea12fa4f4bd">◆ </a></span>numTemplates() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::numTemplates </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>class_id</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.numTemplates(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.numTemplates(</td><td class="paramname">class_id</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a3a9c96fdcc0c85c5a6587576809fb135"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a9c96fdcc0c85c5a6587576809fb135">◆ </a></span>pyramidLevels()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::pyramidLevels </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.linemod_Detector.pyramidLevels(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Get number of pyramid levels used by this detector. </p>
</div>
</div>
<a id="a6388744994ba8eb20b1d2f105e36e2f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6388744994ba8eb20b1d2f105e36e2f1">◆ </a></span>read()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::linemod::Detector::read </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp; </td>
          <td class="paramname"><em>fn</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.linemod_Detector.read(</td><td class="paramname">fn</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a4fc57692a360b0681e5f4515401c4713"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4fc57692a360b0681e5f4515401c4713">◆ </a></span>readClass()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> cv::linemod::Detector::readClass </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../de/dd9/classcv_1_1FileNode.html">FileNode</a> &amp; </td>
          <td class="paramname"><em>fn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>class_id_override</em> = <code>""</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a3783f38548a7650e932240a86c9d3980"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3783f38548a7650e932240a86c9d3980">◆ </a></span>readClasses()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::linemod::Detector::readClasses </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &gt; &amp; </td>
          <td class="paramname"><em>class_ids</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>format</em> = <code>"templates_%s.yml.gz"</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.linemod_Detector.readClasses(</td><td class="paramname">class_ids[, format]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<a id="a45ad63d73e6ff0967b1f479912801a95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45ad63d73e6ff0967b1f479912801a95">◆ </a></span>write()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::linemod::Detector::write </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp; </td>
          <td class="paramname"><em>fs</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a150685aaacdd5e6b99361fdd72baac3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a150685aaacdd5e6b99361fdd72baac3d">◆ </a></span>writeClass()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::linemod::Detector::writeClass </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>class_id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../da/d56/classcv_1_1FileStorage.html">FileStorage</a> &amp; </td>
          <td class="paramname"><em>fs</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
</div>
</div>
<a id="a5113da474bbd6558cff732dadc576c87"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5113da474bbd6558cff732dadc576c87">◆ </a></span>writeClasses()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::linemod::Detector::writeClasses </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d84/group__core__basic.html#ga1f6634802eeadfd7245bc75cf3e216c2">String</a> &amp; </td>
          <td class="paramname"><em>format</em> = <code>"templates_%s.yml.gz"</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.linemod_Detector.writeClasses(</td><td class="paramname">[, format]</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="af9e4e10678d4d451ae66cae2f1b644bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9e4e10678d4d451ae66cae2f1b644bb">◆ </a></span>class_templates</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../d7/d07/classcv_1_1linemod_1_1Detector.html#a76690bb7364a685ebcc45a3813285a4e">TemplatesMap</a> cv::linemod::Detector::class_templates</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a4e4080b2f211294fc79c55aa11654c2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e4080b2f211294fc79c55aa11654c2c">◆ </a></span>modalities</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d5/d1c/classcv_1_1linemod_1_1Modality.html">Modality</a>&gt; &gt; cv::linemod::Detector::modalities</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ab96bceee186a7c3caa7ac8eaacfba518"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab96bceee186a7c3caa7ac8eaacfba518">◆ </a></span>pyramid_levels</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::linemod::Detector::pyramid_levels</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a45bc91a66be77577402b17b8b9c490b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45bc91a66be77577402b17b8b9c490b0">◆ </a></span>T_at_level</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;int&gt; cv::linemod::Detector::T_at_level</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/rgbd/<a class="el" href="../../d7/d7a/linemod_8hpp.html">linemod.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:48 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
